Clion使用踩坑(调用外部DLL配置) | 您所在的位置:网站首页 › mingw 使用 lib 文件 › Clion使用踩坑(调用外部DLL配置) |
如果你调用第三方dll,一切都按照网上配置,结果build报错 undefined reference to xxx
那么恭喜你,看到这篇文章
一种是你target_link_libraries没有配置三方库,第二种是你配对了,但是ToolChians配的不和三方库一直(Window还是linux,x86还是x64,MinGw还是Visual Studio)
解决方法:修改MinGW改为Visual Studio,然后把CMakeLists.txt里面的target_link_libraries中链接的dll文件名改成lib的文件名
使用MinGW调用dll target_link_libraries(项目名 xxx.dll)使用Visual Studio调用lib target_link_libraries(项目名 xxx.lib) 常见问题 ld.exe: cannot find -lxxxx 检测配置的dll或lib名字有没有错误,有没有添加 link_directories(lib) MinGW调用msvc(VS之类的)生成的dll也会报这个错!!! 如果报错要process launch failed: unknown error debug启动加上lib目录的环境变量如果使用utf-8运行报错 什么Unicode之类的,添加 add_compile_options("$") add_compile_options("$") Error LNK2001 无法解析的外部符号 aux_source_directory(. SRC_LIST) # 搜索当前目录下的所有.cpp文件 add_executable(项目名 ${SRC_LIST})项目中使用相对路径读写文件,要配置项目路径,不然读取的是cmake-build-debug路径下面 使用c/c++打包的库分为linux和windows 这里只说windows 静态库(lib)和动态库(dll) 动态库一般会有(.h .lib .dll)这三个文件,如果你是用Visual Studio生成的共享库,那就要修改ToolChians,修改为Visual Studio toolchain(大多数推荐的是MinGW,这个没错,但是你要你知道你的dll使用什么生成的,不知道就切换下试试) 引用的配置CMakeLists.txt cmake_minimum_required(VERSION 3.19) project(callDll) set(CMAKE_CXX_STANDARD 11) link_directories(lib) include_directories(include) add_executable(callDll main.cpp) target_link_libraries(callDll md.lib)目录结构 |
CopyRight 2018-2019 实验室设备网 版权所有 |